/*
 * Copyright (C) 2009 2DAI
 *
 * Este programa es Software Libre; usted puede redistribuirlo
 * y/o modificarlo bajo los términos de la "GNU General Public
 * License" como lo publica la "FSF Free Software Foundation",
 * o (a su elección) de cualquier versión posterior.
 *
 * Este programa es distribuido con la esperanza de que le será
 * útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía
 * implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en
 * particular. Vea la "GNU General Public License" para más
 * detalles.
 *
 * Usted debe haber recibido una copia de la "GNU General Public
 * License" junto con este programa, si no, escriba a la "FSF
 * Free Software Foundation, Inc.", 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 */
package data;

import com.mysql.jdbc.ResultSet;
import on.ActofProtested;
import java.sql.SQLException;
import util.Errors;

/**
 *
 * Author: Gema Lopez Garcia
 */
public class DataActofProtested extends DataManager<ActofProtested> {

    private String tabla = "actofProtested";

    public DataActofProtested() {
        super();
        super.setTabla(tabla);
        requerir();
    }

    @Override
    public void requerir() {
        try {
            //conectamos
            sql.conectar();
            //recojemos los resultados. En la select utilizanos la variable que
            //contiene el nombre de la tabla.
            ResultSet rs = (ResultSet) sql.ejecutarSelect("select id_actofprotested,id_act,delegate,num_license,cause from " + tabla);
            //mientras hayan resultados los vamos insertando en el array de jugadores
            while (rs.next()) {
                ActofProtested actofProtested = new ActofProtested();
                actofProtested.setId_actaProtestada(rs.getInt(1));
                actofProtested.setId_acta(rs.getInt(2));
                actofProtested.setNombreDelegado(rs.getString(3));
                actofProtested.setNumeroLicencia(rs.getString(4));
                actofProtested.setCauses_protesta(rs.getString(5));
                getList().add(actofProtested);
            }
        } catch (SQLException ex) {
            Errors.creaError("ERROR: No se han podido conseguir los datos\n" + ex.getMessage(), ex.getStackTrace());

        } finally {
            sql.desconectar();
        }
    }

public void requerir(int acta) {
        try {
            //conectamos
            sql.conectar();
            //recojemos los resultados. En la select utilizanos la variable que
            //contiene el nombre de la tabla.
            ResultSet rs = (ResultSet) sql.ejecutarSelect("select id_actofprotested,id_act,delegate,num_license,cause from " + tabla+" where id_act="+acta);
            //mientras hayan resultados los vamos insertando en el array de acta protestada
            while (rs.next()) {
                ActofProtested actofProtested = new ActofProtested();
                actofProtested.setId_actaProtestada(rs.getInt(1));
                actofProtested.setId_acta(rs.getInt(2));
                actofProtested.setNombreDelegado(rs.getString(3));
                actofProtested.setNumeroLicencia(rs.getString(4));
                actofProtested.setCauses_protesta(rs.getString(5));
                getList().add(actofProtested);
            }
        } catch (SQLException ex) {
            Errors.creaError("ERROR: No se han podido conseguir los datos\n" + ex.getMessage(), ex.getStackTrace());

        } finally {
            sql.desconectar();
        }
    }
    @Override
    public void guardar(ActofProtested o) {
        getList().set(index, o);
        sql.conectar();
        sql.ejectarUpdate("UPDATE" + tabla + " " +
                "SET id_act" + o.getId_acta() + "," +
                "delegate" + o.getNombreDelegado() + "," +
                "num_license" + o.getNumeroLicencia() + "," +
                "cause" + o.getCauses_protesta() + ")" +
                "WHERE id_actofprotested=" + o.getId_actaProtestada());
        sql.desconectar();
    }

    @Override
    public void insertar(ActofProtested o) {
        sql.conectar();
        getList().add(o);
        sql.ejectarUpdate("INSERT INTO" + tabla + "() " +
                "VALUES(" + o.getId_acta() + "," +
                "\'" + o.getNombreDelegado() + "\',\'" + o.getNumeroLicencia() + "\'," +
                "\'" + o.getCauses_protesta() + "\')");
        sql.desconectar();
    }

    @Override
    public void eliminar(ActofProtested o) {
        sql.conectar();
        getList().remove(index);
        sql.ejectarUpdate("DELETE FROM" + tabla + " " +
                "SET id_actofProtested=" + o.getId_actaProtestada());
        sql.desconectar();
    }

    @Override
    public void crear(String tabla) {
        sql.conectar();
        sql.ejectarUpdate("DROP TABLE IF EXISTS" + tabla + ";");
        sql.ejectarUpdate("CREATE TABLE IF NOT EXISTS" + tabla + " (" +
                "id_actodProtested int(11) NOT NULL auto_increment," +
                "id_act int(11) NOT NULL," +
                "delegate varchar(20) NOT NULL," +
                "num_license int(11) NOT NULL," +
                "cause text NOT NULL," +
                "PRIMARY KEY  (id_team) )" +
                "ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;");
        sql.desconectar();
    }
}
